'\" t
.\" Copyright (C) 2002 Andries Brouwer <aeb@cwi.nl>
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.TH tcgetsid 3 2022-12-15 "Linux man-pages 6.03"
.SH NAME
tcgetsid \- get session ID
.SH LIBRARY
Standard C library
.RI ( libc ", " \-lc )
.SH SYNOPSIS
.nf
.BR "#define _XOPEN_SOURCE 500" "        /* See feature_test_macros(7) */"
.B "#include <termios.h>"
.PP
.BI "pid_t tcgetsid(int " fd );
.fi
.SH DESCRIPTION
The function
.BR tcgetsid ()
returns the session ID of the current session that has the
terminal associated to
.I fd
as controlling terminal.
This terminal must be the controlling terminal of the calling process.
.SH RETURN VALUE
When
.I fd
refers to the controlling terminal of our session,
the function
.BR tcgetsid ()
will return the session ID of this session.
Otherwise, \-1 is returned, and
.I errno
is set to indicate the error.
.SH ERRORS
.TP
.B EBADF
.I fd
is not a valid file descriptor.
.TP
.B ENOTTY
The calling process does not have a controlling terminal, or
it has one but it is not described by
.IR fd .
.SH VERSIONS
.BR tcgetsid ()
is provided since glibc 2.1.
.SH ATTRIBUTES
For an explanation of the terms used in this section, see
.BR attributes (7).
.ad l
.nh
.TS
allbox;
lbx lb lb
l l l.
Interface	Attribute	Value
T{
.BR tcgetsid ()
T}	Thread safety	MT-Safe
.TE
.hy
.ad
.sp 1
.SH STANDARDS
POSIX.1-2001, POSIX.1-2008.
.SH NOTES
This function is implemented via the
.B TIOCGSID
.BR ioctl (2),
present
since Linux 2.1.71.
.SH SEE ALSO
.BR getsid (2)
